package com.kfm.login.config;

import com.kfm.login.interceptor.LoginInterceptor;
import com.kfm.login.interceptor.RememberMeInterceptor;
import com.kfm.login.interceptor.TokenInterceptor;
import com.kfm.login.util.Constant;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

@Configuration
public class WebConfig implements WebMvcConfigurer {

    @Autowired
    private RememberMeInterceptor rememberMeInterceptor;
    @Autowired
    private LoginInterceptor loginInterceptor;

    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        registry.addInterceptor(new TokenInterceptor()).addPathPatterns("/*").excludePathPatterns(Constant.EXCLUDE_PATH);
        registry.addInterceptor(loginInterceptor).addPathPatterns("/*").excludePathPatterns(Constant.EXCLUDE_PATH);
        registry.addInterceptor(rememberMeInterceptor).addPathPatterns("/login");
    }


    /**
     * 跨域配置
     * @param registry
     */
//    @Override
//    public void addCorsMappings(CorsRegistry registry) {
//        registry.addMapping("/*")
//                // 允许跨域的域名，可以用*表示允许任何域名使用， 如果是某个域名的话，需要指定协议如 http://www.baidu.com
//                .allowedOrigins("http://localhost:5173")
//                // 允许任何方法（post、get等）, 全部允许则无需设置，
//                .allowedMethods("GET", "HEAD", "POST", "PUT", "DELETE", "OPTIONS")
//                // maxAge 表示在3600秒内，不需要再发送预检验请求(options)，可以缓存该结果
//                .maxAge(3600)
//                // allowCredentials表示是否允许发送Cookie，用于 凭证请求， 默认不发送cookie，即：false；
//                .allowCredentials(true)
//                // 表示允许所有的请求头, 比如自定义的token等
//                .allowedHeaders("*");
//    }
}
